package com.rpframework.module.common.utils;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang.StringUtils;

import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.rpframework.core.utils.DictionarySettingUtils;

public class DataDictUtils {
	
	/**
	 * 根据数据字典的type查询json数据
	 * @param type
	 * @return
	 */
	@SuppressWarnings({ "rawtypes", "unchecked" })
	public static JsonObject getDataDictByType(String type) {
		JsonObject json = new JsonObject();//定义返回的json
		if(StringUtils.isBlank(type)){
			json.addProperty("succ", false);
			json.addProperty("msg", "type不是有效的字段");
			return json;
		}
		try {
			Map map = DictionarySettingUtils.getParameterMap(type);//获取数据字典里 该类型的所有值
			JsonArray array = new JsonArray();
			//将map 转为 list
			List listKey = new ArrayList();  
	        List listValue = new ArrayList();  
	        Iterator it = map.keySet().iterator();  
	        while (it.hasNext()) {  
	           String key = it.next().toString();  
	           listKey.add(key);  
	           listValue.add(map.get(key));  
	        }  
	        //循环list 将list的值 添加到jsonObject
	        for(int i =0 ;i<listKey.size();i++){  
	    	   JsonObject json1 = new JsonObject();//定义临时JsonObject 
	    	   json1.addProperty("id",listKey.get(i).toString());
	    	   json1.addProperty("name",listValue.get(i).toString());
	    	   array.add(json1);//将JsonObject添加至JsonArray
	    	   json1 = null; //将引用置空 jvm回收变量 
	        }
	        json.add("arrays", array);
		} catch (Exception e) {
			e.printStackTrace();
			json.addProperty("succ", false);
			json.addProperty("msg", "获取字典表失败");
			return json;
		}
		return json;
	}
}
